﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;

using Барс.Своды.АргументыСобытийОтчетнойФормы;
using Барс.Своды.ОтчетнаяФорма;
using Барс.Своды.ТипыЯчеек;
using Барс.Своды.Увязки;

namespace Барс.Своды
{
	public partial class МодульФормы_Анализ_средств_род_сертиф : БазовыйОбработчикФормы
	{
		#region Структура

		#region Таблицы формы

		#region Таблица таблица

		#region Строка данных

		public class СтрокаДанных_таблица : СтрокаДанных
		{

			#region Столбец 15

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_15
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["15"]; }
			}

			#endregion

			#region Столбец 16

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_16
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["16"]; }
			}

			#endregion

			#region Столбец 17

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_17
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["17"]; }
			}

			#endregion

			#region Столбец 18

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_18
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["18"]; }
			}

			#endregion

			#region Столбец 19

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_19
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["19"]; }
			}

			#endregion

			#region Столбец 20

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_20
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["20"]; }
			}

			#endregion

			#region Столбец 21

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_21
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["21"]; }
			}

			#endregion

			#region Столбец 22

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_22
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["22"]; }
			}

			#endregion

			#region Столбец 23

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_23
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["23"]; }
			}

			#endregion

			#region Столбец 24

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_24
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["24"]; }
			}

			#endregion

			#region Столбец 25

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_25
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["25"]; }
			}

			#endregion

			#region Столбец 26

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_26
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["26"]; }
			}

			#endregion

			#region Столбец 1

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_1
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["1"]; }
			}

			#endregion

			#region Столбец 2

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_2
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["2"]; }
			}

			#endregion

			#region Столбец 3

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_3
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["3"]; }
			}

			#endregion

			#region Столбец 3_1

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_3_1
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["3_1"]; }
			}

			#endregion

			#region Столбец 4

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_4
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["4"]; }
			}

			#endregion

			#region Столбец 5

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_5
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["5"]; }
			}

			#endregion

			#region Столбец 6

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_6
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["6"]; }
			}

			#endregion

			#region Столбец 6_1

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_6_1
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["6_1"]; }
			}

			#endregion

			#region Столбец 7

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_7
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["7"]; }
			}

			#endregion

			#region Столбец 8

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_8
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["8"]; }
			}

			#endregion

			#region Столбец 9

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_9
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["9"]; }
			}

			#endregion

			#region Столбец 10

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_10
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["10"]; }
			}

			#endregion

			#region Столбец 11

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_11
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["11"]; }
			}

			#endregion

			#region Столбец 12

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_12
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["12"]; }
			}

			#endregion

			#region Столбец 13

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_13
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["13"]; }
			}

			#endregion

			#region Столбец 14

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_14
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["14"]; }
			}

			#endregion

			#region Столбец 27

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_27
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["27"]; }
			}

			#endregion

			#region Столбец 28

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_28
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["28"]; }
			}

			#endregion

			#region Столбец 29

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_29
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["29"]; }
			}

			#endregion

			#region Столбец 30

			public Барс.Своды.ТипыЯчеек.ЧисловойТип Столбец_30
			{
				get { return (Барс.Своды.ТипыЯчеек.ЧисловойТип)this["30"]; }
			}

			#endregion

			#region Столбец 15_1

			public Барс.Своды.ТипыЯчеек.ФинансовыйТип Столбец_15_1
			{
				get { return (Барс.Своды.ТипыЯчеек.ФинансовыйТип)this["15_1"]; }
			}

			#endregion

			#region Столбец 15_2

			public Барс.Своды.ТипыЯчеек.ФинансовыйТип Столбец_15_2
			{
				get { return (Барс.Своды.ТипыЯчеек.ФинансовыйТип)this["15_2"]; }
			}

			#endregion

			#region Столбец 15_3

			public Барс.Своды.ТипыЯчеек.ФинансовыйТип Столбец_15_3
			{
				get { return (Барс.Своды.ТипыЯчеек.ФинансовыйТип)this["15_3"]; }
			}

			#endregion

			#region Столбец 15_4

			public Барс.Своды.ТипыЯчеек.ФинансовыйТип Столбец_15_4
			{
				get { return (Барс.Своды.ТипыЯчеек.ФинансовыйТип)this["15_4"]; }
			}

			#endregion

		}

		#endregion

		public class ТаблицаДанных_таблица : ТаблицаДанных
		{
			#region Конструктор

			public ТаблицаДанных_таблица( ДанныеФормы Данные, string КодТаблицы )
				:base( Данные, КодТаблицы )
			{
			}

			#endregion

			#region Объявление классов

			#region Строки данных

			public class Строки_таблица : IEnumerable<СтрокаДанных_таблица>
			{
				private ТаблицаДанных таблица = null;

				public СтрокаДанных_таблица this[ string Индекс ]
				{
					get { return (СтрокаДанных_таблица)таблица.МатрицаЗначений.ПолучитьСтроку(Индекс); }
				}

				public СтрокаДанных_таблица this[ int Индекс ]
				{
					get { return (СтрокаДанных_таблица)таблица.МатрицаЗначений.ПолучитьСтроку(Индекс); }
				}

				public int КоличествоСтрок
				{
					get { return таблица.МатрицаЗначений.Количество; }
				}

				public IEnumerator<СтрокаДанных_таблица> GetEnumerator()
				{
					List<СтрокаДанных_таблица> списокСтрок = new List<СтрокаДанных_таблица>();

					foreach( СтрокаДанных строкаДанных in таблица.МатрицаЗначений.Строки.Values )
					{
						списокСтрок.Add( строкаДанных as СтрокаДанных_таблица );
					}

					return списокСтрок.GetEnumerator();
				}

				System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
				{
					return this.GetEnumerator();
				}

				#region Конструктор

				public Строки_таблица( ТаблицаДанных Таблица )
				{
					this.таблица = Таблица;
				}

				#endregion

				#region Строки данных

				public СтрокаДанных_таблица Строка_1
				{
					get { return (СтрокаДанных_таблица)таблица.МатрицаЗначений.Строки["1"]; }
				}

				#endregion

			}

			#endregion

			#endregion

			#region Объявление свойств

			private Строки_таблица строкиТаблицы = null;
			public Строки_таблица СтрокиТаблицы
			{
				get
				{
					if( строкиТаблицы == null )
						строкиТаблицы = new Строки_таблица(this);

					return строкиТаблицы;
				}
			}

			#endregion

			#region Переопределение методов

			protected override СтрокаДанных СоздатьСтрокуДанных()
			{
				СтрокаДанных_таблица строка = new СтрокаДанных_таблица();
				строка.ЗаполнитьСтроку( СтолбцыМетаструктуры );

				return строка;
			}

			#endregion
		}


		#endregion

		#endregion

		public class ДанныеФормы_Анализ_средств_род_сертиф : ДанныеФормы
		{
			#region Объявление классов

		#region Свободные ячейки

		public class СвободныеЯчейки_Анализ_средств_род_сертиф : НаборЯчеекДанных
		{

			public Барс.Своды.ТипыЯчеек.СсылкаНаУчреждение Учреждение
			{
				get { return (Барс.Своды.ТипыЯчеек.СсылкаНаУчреждение)this["Учреждение"]; }
			}
		}

		#endregion

			#region Класс ТаблицыФормы_Анализ_средств_род_сертиф

			public class ТаблицыФормы_Анализ_средств_род_сертиф
			{
				private ДанныеФормы_Анализ_средств_род_сертиф данныеФормы;

				#region Конструктор

				public ТаблицыФормы_Анализ_средств_род_сертиф(ДанныеФормы_Анализ_средств_род_сертиф ДанныеФормы)
				{
					данныеФормы = ДанныеФормы;
				}

				#endregion

				#region Свойства - таблицы

				public ТаблицаДанных_таблица таблица
				{ 
					get { return (ТаблицаДанных_таблица)данныеФормы["таблица"]; } 
				}

				#endregion

			}

			#endregion

			#endregion

			#region Объявление свойств

			public СвободныеЯчейки_Анализ_средств_род_сертиф СвободныеЯчейкиФормы
			{
				get { return (СвободныеЯчейки_Анализ_средств_род_сертиф)this.СвободныеЯчейки; }
			}

			private ТаблицыФормы_Анализ_средств_род_сертиф таблицыФормы;

			public ТаблицыФормы_Анализ_средств_род_сертиф ТаблицыФормы
			{
				get { return таблицыФормы; }
			}

			#endregion

			#region Конструктор


			public ДанныеФормы_Анализ_средств_род_сертиф(IМенеджерСправочников менеджерСправочников)
				:base(менеджерСправочников)
			{
				таблицыФормы = new ТаблицыФормы_Анализ_средств_род_сертиф(this);
				свободныеЯчейки = new СвободныеЯчейки_Анализ_средств_род_сертиф();
			}

			#endregion

			#region Переопределение методов

			protected override ТаблицаДанных СоздатьТаблицуДанных( string КодТаблицы )
			{
				switch( КодТаблицы.Trim().ToLower() )
				{

					case "таблица" :
						return new ТаблицаДанных_таблица( this, КодТаблицы );

					default :
						return new ТаблицаДанных( this, КодТаблицы );
				}
			}

			#endregion
		}

		public ДанныеФормы_Анализ_средств_род_сертиф ДанныеТекущейФормы
		{
			get { return (ДанныеФормы_Анализ_средств_род_сертиф)this.Форма; }
		}

		public override ДанныеФормы СоздатьДанныеФормы(IМенеджерСправочников менеджерСправочников)
		{

			return new ДанныеФормы_Анализ_средств_род_сертиф(менеджерСправочников);
		}

		#endregion
	}
}
